perm filename UUO.SHK[UP,DOC] blob sn#002759 filedate 1972-10-09 generic text, type T, neo UTF8
		Monitor Programmed Operators

Op Code	Call					Page # in Moorer

040	CALL AC,[SIXBIT /<function>]		II.D.17-9
						Multi-purpose UUO.

041	INIT <channel>,<mode>			II.D.1-1
	<device>				Initialize a device
	XWD OBUF,IBUF
	<error routine>

042

043	SPCWAR N,ADR				II.D.14-2
						Initiate spacewar job
						on PDP-6. Start   job
						at  ADR every N 60ths
						of a second.

044

045

046

047	CALLI AC,<function>			II.D.17-9
						Programmed   operator
						extension  (Alias for
						the CALL UUO)


050	OPEN <channel>,ADR			II.D.1-2
	<error return>				Initialize a device

	ADR:	<mode>
		<device>
		XWD OBUF,IBUF

		More Programmed Operators

051	TTYUUO <function>,ADR			II.D.6-1
						Teletype functions
	0	INCHRW	ADR
	1	OUTCHR	ADR
	2	INCHRS	ADR
		<no character has been typed>
		<successful return>
	3	OUTSTR	ADR			II.D.6-2
	4	INCHWL	ADR
	5	INCHSL	ADR
		<full line has not been typed yet>
		<successful return>
	6	GETLIN	ADR
	7	SETLIN	ADR			II.D.6-4
	10	RESCAN	ADR			II.D.6-5
	11	CLRBFI
	12	CLRBFO
	13	INSKIP
		<no characters have been typed>
		<there are characters waiting for you>
	14	INWAIT				II.D.6-6

052

053

054

055	RENAME <channel>,ADR			II.D.3-4
	<error return>				Rename  or  delete  a
						file
	ADR:	<new file name or zero for deletion>
		XWD <new extension, zero for delete>,0
		<bits 0-8; new protection key, bits 9-35 are ignored>
		<new ppn>

056	IN <channel>,ADR			II.D.4-1
	<successful return>			INPUT  and  skip   on
	<error return>				error or EOF

057	OUT <channel>,ADR			II.D.4-1
	<successful return>			OUTPUT  and  skip  on
	<error return>				error or EOF

060	SETSTS	<channel>,ADR			II.D.12-1
						Set file status

061	STATO	<channel>,BITS			II.D.12-1
	<all the bits in BITS are off>		Skip  if  file status
	<one or more of the bits in BITS is on>	     bits=1

		Still More Programmed Operators

062	GETSTS	<channel>,ADR			II.D.12-1
						Copy file  status  to
ADR

063	STATZ	<channel>,BITS			II.D.12-1
	<one or more of the bits in BITS is on>	Skip if  file  status
	<all of the bits in BITS are off>	bits=0

064	INBUF <channel>,<number of buffers>	II.D.2-1
						Set  up  input buffer
						ring

065	OUTBUF <channel>,<number of buffers>	II.D.2-1
						Set  up output buffer
						ring

066	INPUT <channel>,ADR			II.D.4-1
						Request input or next
						buffer

067	OUTPUT <channel>,ADR			II.D.5-1
						Request   output   or
						next buffer


070	CLOSE <channel>,S			II.D.5-1
						Terminate        file
						operation

071	RELEAS <channel>,0			II.D.5-1
						Release device

072	MTAPE <channel>,<function>		II.D.7-1
						Magnetic Tape UUO

073	UGETF <channel>,ADR			II.D.11-1
						Get next free DECtape
						block number

074	USETI <channel>,<block number>		II.D.11-1
						Set next input  block
						number

075	USETO <channel>,<block number>		II.D.11-1
						Set next output block
						number

		Bride of Monitor Programmed Operators

076	LOOKUP <channel>,ADR			II.D.3-1
	<error return>				Select  a  file   for
						input
	ADR:	<file name>
		<file extension>
		<this word ignored>
		XWD <ignored unless disk>,<ppn>

077	ENTER <channel>,ADR			II.D.3-3
	<error return>				Select   a  file  for
						output
	ADR:	<file name>
		<file extension>
		<protection - bits 0-8><creation data - bits 9-35>
		<ppn>

		Son of Monitor Programmed Operators

Op Code	Call					Page #

701	DPYCLR					II.D.8-1
						Returns  III  Display
						to virgin state

702	PPIOT <function>,<arguement>		II.D.8-1
	0	PPSEL	<piece of paper number>	III    Display   Page
						Printer UUO
	1	PPACT	<page specification>	II.D.8-2
	2	DPYPOS	Y
	3	DPYSIZ	X*1000+Y
	4	PPREL	<piece of paper number>	II.D.8-3

703	UPGIOT	<piece of glass number>,ADR	II.D.8-3
						Run    III    Display
	ADR:	<address of display program>	program
		<length of display program in words>

704	UINBF <channel>,ADR			II.D.2-1
						Set up  input  buffer
	ADR:	<number of buffers>		ring
		<number of words of data in each buffer>+1


705	UOUTBF <channel>,ADR			II.D.3-1
						Set  up output buffer
	ADR:	<number of buffers>		ring
		<number of words of data in each buffer>+1

706	FBREAD	MOVE	AC,<number of band>	II.D.9-2
		FBREAD	AC,ADR			Read Librascope band
		<error return>
		ADR:	<address you want the data to go>
			<number of words to be transferred>
			<sector address of beginning of transfer>

707	FBWRT	MOVE	AC,<band number>	II.D.10-1
		FBWRT	AC,ADR			Write on a Librascope
		<error return>			band

		ADR:	<address of data>
			<number of words of data>
			<beginning sector number>


		Return of the Monitor Programmed Operators

Op Code	Call					Page #

711	PTYUUO <function>,ADR			II.D.6-7
		ADR: <pseudo-teletype line number>
		     <this depends on the function>

	0	PTYGET ADR			II.D.6-8
		<none available>		Initialize PTY
		<successful return>

	1	PTYREL ADR			II.D.6-9
						Release PTY

	2	PTIFRE ADR			II.D.6-9
						Return # of free char-
						acters   left  in  the
						PTY's input buffer.

	3	PTOCNT ADR			II.D.6-9
						Return # of characters
						in PTY output buffer.

	4	PTRD1S ADR			II.D.6-9
		<no character is present>	PTY analog of INCHRS.
		<successful return>

	5	PTRD1W ADR			II.D.6-10
						PTY analog of INCHRW.

	6	PTWR1S ADR			II.D.6-10
		<character cannot be transmitted>
		<successful return>		Transmit  9-bit char-
						acter  from  ADR+1 to
						PTY  whose  line # is
						in ADR.

	7	PTWR1W ADR			II.D.6-10
						Same as PTWR1S except
						if the character  can
						not  be  transmitted,
						UUO will  wait  until
						there is room.

	10	PTRDS ADR			II.D.6-11
						Gives  you  the char-
						acters waiting in the
						PTY output buffer.

		Conquest of the Monitor Programmed Operators

Op Code	Call					Page #

711	PTYUUO <function>,ADR (continued)

	11	PTWRS7 ADR			II.D.6-11
						Transmit ASCIZ string

	12	PTWRS9 ADR			II.D.6-11
						Same as PTWRS7 except
						uses 9-bit string.

	13	PTGETL ADR			II.D.6-12
						PTY analog of GETLIN.

	14	PTSETL ADR			II.D.6-12
						PTY analog of SETLIN.

	15	PTLOAD ADR			II.D.6-12
						Load    line   editor
						buffer.

		Beyond the Valley of the Monitor Programmed Operators

712	POINTS	ADR				II.D.15-4
						Put   list   of   job
	ADR: <table at least 25 locations long>	numbers,    including
						your own, which refer
						to your upper segment
						in  ADR  and  succed-
						ing locations.

713	UPGMV	AC,ADR				II.D.9-1
						MOVE  word ADR in III
						Display program to AC

714	UPGMVM	AC,ADR				II.D.9-1
						MOVEM AC to word ADR
						in     III    Display
						program.

715	PGIOT	<function>,<arguement>		II.D.8-4
	0	PGSEL	<piece-of-glass number>	III Display piece-of-
						glass UUO
	1	PGACT	<piece-of-glass specification>
	2	PGCLR

716	CHNSTS <channel>,ADR			II.D.13-9
						Place use bits for IO
						channel into AC.

717	CLKINT <processor>,<number of devices>	II.D.16-10
						Enable  job for clock
						interrupts.

720	INTMSK <processor>,ADR			II.D.16-9
						Set   the   interrupt
						mask for this pro-
						cessor.  (1 = PDP-10;
						2 = PDP-6)
	ADR: <interrupts this processor may receive>

721	IMSKST <processor>,ADR			II.D.16-10
	ADR: <bits to be ANDCAMed into processor mask>

722	IMSKCL <processor>,ADR			II.D.16-10

723	INTUUO <function>,ADR			II.D.16-10
						Multi-purpose
	0	INTJEN ADR			interrupt UUO
		ADR: <interrupt bits to be ORed in>
		<PC word to go to>

		CALL and CALLI Monitor Operations

CALLI	Mnemonic	Call			Page and/or Comments

0	RESET	CALL [SIXBIT /RESET/]		II.D.17-8
						Reset IO device.

4	DEVCHR	MOVE AC,<device name>		II.D.13-2
		CALL AC,[SIXBIT /DEVCHR/]	Get device character-
						istics

10	WAIT	CALL <channel>,[SIXBIT /WAIT/]	II.D.17-1
						Wait  until all IO is
						completed.

11	CORE	CALL AC,[SIXBIT /CORE/]		II.D.17-1
		<error return>			Change core size
		<successful return>

12	EXIT	CALL [SIXBIT /EXIT/]		II.D.17-2
						Close   all  channels
						and ↑C.

13	UTPCLR	CALL <channel>,[SIXBIT /UTPCLR/]II.D.10.1
						Clear   DECtape  dir-
						ctory

14	DATE	CALL AC,[SIXBIT /DATE/]		II.D.13-1
						Return date

15	LOGIN	CALL AC,[SIXBIT /LOGIN/]	II.D.17-2
						Priveleged UUO.

16	APRENB	MOVE AC,<condition code>	II.D.17-5
		CALL AC,[SIXBIT /APRENB/]	Enable  central  pro-
						cessor traps.

17	LOGOUT	CALL [SIXBIT /LOGOUT/]		II.D.17-2
						Priveleged UUO.

20	SWITCH	CALL AC,[SIXBIT /SWITCH/]	II.D.13-2
						Read   console   data
						switches

21	REASSI	MOVE AC,<job number>		II.D.17-8
		MOVE AC+1,<device>		Reassign device.
		CALL AC,[SIXBIT /REASSI/]

22	TIMER	CALL AC,[SIXBIT /TIMER/]	II.D.13-1
						Read time of  day  in
						clock ticks

		CALL and CALLI Monitor Operations

23	MSTIME	CALL AC,[SIXBIT /MSTIME/]	II.D.13-1
						Read time of  day  in
						milliseconds
24	GETPPN	MOVE AC,<number of job>		II.D.13-2
		CALL AC,[SIXBIT /GETPPN/]	Return ppn of job

27	RUNTIM	MOVE AC,<number of job or 0>	II.D.13-1
		CALL AC,[SIXBIT /RUNTIM/]	Return   the    job's
						running time in
						milliseconds

30	PJOB	CALL AC,[SIXBIT /PJOB/]		II.D.13-2
						Return job number

31	SLEEP	MOVE AC,<number of seconds>	II.D.17-3
		CALL AC,[SIXBIT /SLEEP/]	Put the job to sleep.

33	PEEK					II.D.13-4
		MOVE AC,<address you want to look at>
		CALL AC,[SIXBIT /PEEK/]		Return  contents   of
						executive addr.

36	SETUWP	MOVE AC,<0=protect,≠0=unprotect>II.D.15-2
		CALL AC,[SIXBIT /SETUWP/]	Write-protect  or un-
		<protection violation>		protect high segment.

37	REMAP	MOVEI AC,<highest addr in lower>II.D.15-1
		CALL AC,[SIXBIT /REMAP/]	Remap   top   of  low
		<error return>			segment   into   high
						segment.

		CALL and CALLI Monitor Operations

400000	SPCWAR	CALL AC,[SIXBIT /SPCWAR/]	II.D.14-3
						Read    status     of
						spacewar buttons into
						AC.

400001	CTLV	CALL [SIXBIT /CTLV/]		II.D.6-7
						Turn TTY duplexing on
						and off.

400002	SETNAM	MOVE AC,<name you want>		II.D.17-7
		CALL AC,[SIXBIT /SETNAM/]	Change you name.

400003	SPCWGO	CALL AC,[SIXBIT /SPCWGO/]	II.D.14-3
						Initiate spacewar job
		AC: bit 0 = job on PDP-10	on   either  or  both
			1 = job on PDP-6	processors.  Put info
						about the job in AC.
		<if both bits=0, then job run on PDP-6>
		14-17 = time in 60ths of a  second  between  spacewar
			startups

400004	SWAP	MOVE AC,[XWD E,F]		II.D.17-6
		CALL AC,[SIXBIT /SWAP/]		SAVE your core  image
						and then  RUN another
		E:	<device>		program.
			<file>
			<file extension>
			XWD <core size in 1K blocks>,<starting addr.>
			<ppn>

		F:	<device>
			<file>
			XWD <file extension>,<mode bits>
			XWD <core size in 1K blocks>,<starting
				address increment>
			<ppn>

400005	EIOTM	CALL [SIXBIT /EIOTM/]		II.D.17-1
						Go into IOT-USER mode

400006	LIOTM	CALL [SIXBIT /LIOTM/]		II.D.17-1
						Get  out  of IOT-USER
						mode.

400007	PNAME	MOVE AC,<device>		II.D.13-8
		CALL AC,[SIXBIT /PNAME/]	Return  physical name
						of device
		<error return - device doesn't exist>

		CALL and CALLI Monitor Operations

400010	UFBGET					II.D.9-1
						Get a Librascope band
		MOVE	AC,<number of the band you want>
		CALL	AC,[SIXBIT /UFBGET/]
		<no bands available>
400011	UFBGIV					II.D.9-2
						Release    Librascope
						band
		MOVE	AC,<number of the band you wish to release>
		CALL	AC,[SIXBIT /UFBGIV/]

400012	UFBCLR	CALL [SIXBIT /UFBCLR/]		II.D.9-1
						Release any  and  all
						Librascope bands  you
						may have.

400013	JBTSTS	CALL AC,[SIXBIT /JBTSTS/]	II.D.13-8
						Get  job  status word
						for job # in AC.

400014	TTYIOS					II.D.6-6
						Returns TTY IO status
						bits.
		MOVE AC,<teletype name in SIXBIT>
		CALL AC,[SIXBIT /TTYIOS/]	
400015	CORE2					II.D.15-2
		MOVE AC,<highest upper segment address desired>
		CALL AC,[SIXBIT /CORE2/]	Make   or  kill  high
						segment.
		<not available or protection violation>

400016	ATTSEG	MOVE AC,<job number or name>	II.D.15-2
		CALL AC,[SIXBIT /ATTSEG/]	Attach already exist-
		<error - error code in AC>	ant upper segment  to
						a lower  that doesn't
						already have one.

400017	DETSEG	CALL [SIXBIT /DETSEG/]		II.D.15-3
						Detach upper segment

400021	SEGNUM	CALL AC,[SIXBIT /SEGSIZ/]	II.D.15-3
						Place number of  your
						high segment into AC.

400022	SEGSIZ	CALL AC,[SIXBIT /SEGSIZ/]	II.D.15-3
						Place length of upper
						segment   minus   one
						into AC.

		CALL and CALLI Monitor Operations

400023	LINKUP	CALL [SIXBIT /LINKUP/]		II.D.15-4
		<error return>			Attach  to  high seg-
						ment  with  same  job
						name,   date  of cre-
						ation, etc...

400034	UWAIT	CALL [SIXBIT /UWAIT/]		II.D.16-7
						At   interrupt-level,
						returns   immediately
						if   your  user-level
						job was  not  in  the
						middle of doing a UUO
						at the time the  int-
						errupt occurs, or re-
						turns when the UUO is
						completed.
400035	DEBREAK	CALL [SIXBIT /DEBREAK/]		II.D.16-8
						At   interrupt-level,
						causes  your   inter-
						rupt-level    process
						to become your  user-
						level process immedi-
						ately  following  the
						DEBREAK UUO.

400040	IWAIT	CALL [SIXBIT /IWAIT/]		II.D.16-8
						Put   job  into  wait
						state until an inter-
						rupt occurs.

400041	USKIP	CALL [SIXBIT /USKIP/]		II.D.16-7
		<returns here if UWAIT will proceed>
						At   interrupt-level,
						tells you whether you
						may give a  UWAIT UUO
						and proceed immediat-
						ely or not.

400042	BUFLEN	MOVE AC,[SIXBIT /<device name>/]II.D.13-10
		CALL AC,[SIXBIT /BUFLEN/]	Return    length   of
						buffer which would be
						set up by an INIT and
						an INBUF or OUTBUF.

		CALL and CALLI Monitor Operations

400043	NAMEIN	MOVE AC,[SIXBIT /job name/]	II.D.13-10
		CALL AC,[SIXBIT /NAMEIN/]	Determine  whether  a
		<error return - code in AC>	job name is currently
						in use.
						Code 1 = No jobs with
							 that name.
						Code 2 = > 1 job with
							 that name.

400044	SLEVEL					II.D.17-9
		MOVE AC,[XWD <service level>,<job number>]
		CALL AC,[SIXBIT /SLEVEL/]	Determines  or decre-
						ments   your  service
						level.

400045	IENBW	MOVE AC,<interrupt bits>	II.D.16-9
		CALL AC,[SIXBIT /IENBW/]	Avoid  interrupt race
						conditions  by going
						into    wait   state
						IMMEDIATELY.

400046	RUNMSK	MOVE AC,<processor enble bits>	II.D.17-8
		CALL AC,[SIXBIT /RUNMSK/]	Set number  of  pro-
						cessor  which   will
						run  your  job.